Modern computing systems are provided with a wide variety of input and output (I/O) mechanisms for allowing a user to interact with stored data. Depending on the operational setting, a given I/O mechanism will result in various benefits and/or limitations for the user-device interaction. Devices that are portable and/or that employ touch sensitive interfaces can pose particular challenges to the design and deployment of I/O mechanisms.
Normally, it is desirable that portable devices be relatively small, which can limit the ability to provide powerful input mechanisms that are easy to use. For example, in the design of laptop/notebook computers and mobile phones, screen size is often sacrificed in order to improve portability. The smaller screen size can limit touch screen input capability, and in general decreases the utility of the device when performing tasks that are well-suited to large screen sizes. Functionalities that often suffer due to these tradeoffs are document creation, and sharing and collaboration among multiple users/participants.